How to debug python del self.callbacks[s][cid] keyError when the error message does not indicate where in my code the error is
Posted
by
lkloh
on Stack Overflow
See other posts from Stack Overflow
or by lkloh
Published on 2014-06-06T21:23:49Z
Indexed on
2014/06/06
21:24 UTC
Read the original article
Hit count: 167
In a python program I am writing, I get an error saying
Traceback (most recent call last):
File "/Applications/Canopy.app/appdata/canopy-1.4.0.1938.macosx- x86_64/Canopy.app/Contents/lib/python2.7/lib-tk/Tkinter.py", line 1470, in __call__
return self.func(*args)
File "/Users/lkloh/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 413, in button_release_event
FigureCanvasBase.button_release_event(self, x, y, num, guiEvent=event)
File "/Users/lkloh/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/backend_bases.py", line 1808, in button_release_event
self.callbacks.process(s, event)
File "/Users/lkloh/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/cbook.py", line 525, in process
del self.callbacks[s][cid]
KeyError: 103
Do you have any idea how I can debug this/ what could be wrong? The error message does not point to anywhere in code I have personally written. I get the error message only after I close my GUI window, but I want to fix it even though it does not break the functionality of my code.
The error is part of a very big program I am writing, so I cannot post all my code, but below is code I think is relevant:
def save(self, event): self.getSaveAxes() self.save_connect()
def getSaveAxes(self):
saveFigure = figure(figsize=(8,1))
saveFigure.clf()
# size of save buttons
rect_saveHeaders = [0.04,0.2,0.2,0.6]
rect_saveHeadersFilterParams = [0.28,0.2,0.2,0.6]
rect_saveHeadersOverride = [0.52,0.2,0.2,0.6]
rect_saveQuit = [0.76,0.2,0.2,0.6]
#initalize axes
saveAxs = {}
saveAxs['saveHeaders'] = saveFigure.add_axes(rect_saveHeaders)
saveAxs['saveHeadersFilterParams'] = saveFigure.add_axes(rect_saveHeadersFilterParams)
saveAxs['saveHeadersOverride'] = saveFigure.add_axes(rect_saveHeadersOverride)
saveAxs['saveQuit'] = saveFigure.add_axes(rect_saveQuit)
self.saveAxs = saveAxs
self.save_connect()
self.saveFigure = saveFigure
show()
def save_connect(self):
#set buttons
self.bn_saveHeaders = Button(self.saveAxs['saveHeaders'], 'Save\nHeaders\nOnly')
self.bn_saveHeadersFilterParams = Button(self.saveAxs['saveHeadersFilterParams'], 'Save Headers &\n Filter Parameters')
self.bn_saveHeadersOverride = Button(self.saveAxs['saveHeadersOverride'], 'Save Headers &\nOverride Data')
self.bn_saveQuit = Button(self.saveAxs['saveQuit'], 'Quit')
#connect buttons to functions they trigger
self.cid_saveHeaders = self.bn_saveHeaders.on_clicked(self.save_headers)
self.cid_savedHeadersFilterParams = self.bn_saveHeadersFilterParams.on_clicked(self.save_headers_filterParams)
self.cid_saveHeadersOverride = self.bn_saveHeadersOverride.on_clicked(self.save_headers_override)
self.cid_saveQuit = self.bn_saveQuit.on_clicked(self.save_quit)
def save_quit(self, event):
self.save_disconnect()
close()
© Stack Overflow or respective owner